#include "Barbearia.h"

Barbearia::Barbearia()
{
	this->mBarbeiro1.setID( 1 );
	this->mBarbeiro2.setID( 2 );
	this->mBarbeiro3.setID( 3 );
	
	this->isFilaClientesLivre = true;
	
	Args args;
	args.isFilaClientesLivre = &this->isFilaClientesLivre;
	args.pFilaClientesCortados = &this->mFilaClientesCortados;
	args.pFilaClientes = &this->mFilaClientesCortados;
	
	pthread_create(&this->mThreadCorta1, NULL,
		Barbeiro::cortarCabelo, (void*) &args);
	pthread_create(&this->mThreadCorta2, NULL,
		Barbeiro::cortarCabelo, (void*) &args);
	pthread_create(&this->mThreadCorta3, NULL,
		Barbeiro::cortarCabelo, (void*) &args);	
}

Barbearia::~Barbearia()
{
	pthread_join(this->mThreadCorta1, NULL);
	pthread_join(this->mThreadCorta2, NULL);
	pthread_join(this->mThreadCorta3, NULL);
	
}

void
Barbearia::entradaDeCliente(Cliente novoCliente)
{	
	while( this->isFilaClientesLivre == false)
	{}
	this->isFilaClientesLivre = false;
	
	this->mFilaClientes.push(novoCliente);
	this->isFilaClientesLivre = true;
}

